/**
 * 1.什么是mongoose?
 * mongoose是一个基于node.js的用于操作mongodb数据库的第三方模块
 * 2.mongoose的安装
 * 先配置一个express框架
 * cnpm install mongoose
 * 3.mongoose的使用
 * a.连接数据库
 * 语法：mongoose.connect("mongodb://服务器:端口号/数据库名",回调函数);
 * 示例：
 * mongoose.connect("mongodb://127.0.0.1:27017/app",function(err){
 *   if(err){
 *    throw err;    
 *  }else{
 *    console.log('数据库连接成功');
 *  }
 * });
 * b.定义骨架schema
 * 概述：schema骨架是一种数据结构声明，不具备数据库的操作能力
 * 语法：
 *  var schema=new mongoose.Schema({
 *    字段名:类型,
 *    字段名:类型   
 *  });
 * 示例：
 *  var singerSchema=new mongoose.Schema({
 *   name:String,
 *   country:String,
 *   age:Number
 *  });
 *  骨架的类型：String Nuber Date Buffer ObjectId Array...
 * c.创建模型model
 * 概述：model模型是一种根据骨架创建出来的模型，具备数据库操作的能力，通常用于
 * 读取数据库
 * 语法：
 *   var singerModel=mongoose.model('模型名称',骨架,'集合名称');
 * 示例：
 *   var singerModel=mongoose.model('singer',singerSchema,'singer');
 * d.创建实体Entity
 * 概述：Entity实体是根据模型创建出一个实例，具备数据库操作的能力，通常用于写数据（新增、修改、删除）
 * var singer=new singerModel();
 * singer.属性名=值；
 * singer.save();//将添加到实例上的属性保存到数据库中
 * singer.remove();//删除数据
 * 4.数据操作（增删改查）
 * a.查询数据/读取数据
 * //1根据条件进行数据查询，可以找出多条数据find
 * 模型.find({条件},function(err,data){
 *    //data是从数据库中读取到的数据
 *    //find方法找出来的数据一定是一个数组，即使没有数据也是一个空数组
 * });
 * //2通过ID查找一条数据findById
 * 模型.findById('id',function(err,data){
 *   //findById找出来的数据是一个对象
 * });
 * //3另一种常用的写法，链式调用【推荐】
 * 模型.find({}).skip().limit().sort().exec(function(){
 * });
 * 
 */
b.新增数据
var list=new listModel();//根据模型创建实例
list.name='张三';
list.age=22;
//将新增的数据保存到数据库中
list.save(function(err){
  console.log('新增成功');
});
注意：骨架中没有定义属性及类型，不能加进数据库
c.删除数据
思想：
 第一步：找出要被删除的数据
 第二步：调用remove()方式删除数据
实现：
 listModel.findById(id).exec(function(err,data){
   data.remove(function(err){
     console.log('删除成功');
   });
 });
//  根据条件删除数据
listModel.find({}).exec(function(err,data){
  for(var i in data){
    data[i].remove();//删除所有找到的数据
  }
});
四、修改数据
思想：
  第一步：找出被修改的数据
  第二步：将数据修改以后保存回数据库
实现：
  listModel.findById(id).exec(function(err,data){
    data.name=新的值;
    data.age=新的值;
    data.save(function(err){
      console.log('修改成功');
    });
  });  